#ifndef ___HP6578_H___
#define ___HP6578_H___

#include "stm32f10x.h"
#include "L6452.h"
#include "delay.h"
#include "Motor.h"
#include "LY68L6400.h"


//宏定义电机参数
//X轴慢速移动一步 电平保持的时间参数
#define HP6578_XM_MOVE_STEP_TIME		200
//X轴快速移动一步 电平保持的时间参数
#define HP6578_XM_RUN_STEP_TIME			70
//X轴减速距离 0
#define HP6578_XM_REDUCE_SPEED_STEP		500 
//彩色机加速距离 彩色机不加速
#define	HP6578_XM_INCREASE_SPEED_STEP	500
//Y轴慢速移动一步 电平保持的时间参数


#define HP6578_YM_MOVE_STEP_TIME		250
//Y轴快速移动一步 电平保持的时间参数
#define HP6578_YM_RUN_STEP_TIME			250
//Y轴减少距离 为0
#define HP6578_YM_REDUCE_SPEED_STEP		0
//Y轴加速距离为0
#define HP6578_YM_INCREASE_SPEED_STEP	0

//Z轴慢速移动一步 电平保持的时间参数
#define HP6578_ZM_MOVE_STEP_TIME		600
//Z轴快速移动一步 电平保持的时间参数
#define HP6578_ZM_RUN_STEP_TIME			600
//Y轴减少距离 为200步4mm
#define HP6578_ZM_REDUCE_SPEED_STEP		200
//Z轴减速距离
#define HP6578_ZM_INCREASE_SPEED_STEP	0

//彩色机打印测试时的起点坐标
#define HP6578_X_ORIGIN					3600
#define HP6578_Y_ORIGIN					1500
//彩色机每排刷的byte长度为27个byte
#define HP6578_BYTES_OF_ONE_LINE		27
//彩色机打印测试Y方向的排数	彩色机为6排
#define HP6578_PRINT_TEST_Y_CNT			6
//彩色机打印测试X方向移动的点数
#define HP6578_PRINT_TEST_X_CNT			600
//彩色机为300dpi 即两个点之间4步距离
#define HP6578_STEPS_BETWEEN_TWO_POINTS	4
//Y轴下降一排刷的步数
#define HP6578_YM_MOVE_TO_NEXT_ROW		154
//HP6578打印测试Y轴下降一排刷
#define HP6578_PRINT_TEST_YM_MOVE_TO_NEXT_ROW   300

//X轴移动到下一排的步数
#define HP6578_XM_MOVE_TO_NEXT_ROW		4
//6578一排刷27bytes
#define HP6578_BYTES_OF_ONE_LINE	    27	
//彩色机每排喷头个数为72个			
#define HP6578_INKCNT_OF_ONE_LINE  	    72		
//彩色机墨盒喷墨持续时间
#define HP6578_INK_JET_TIME             17                          //delay_nus的参数为17约2us
//彩色机墨盒加热高电平保持时间
#define HP6578_HEAT_INK_HOLD_TIME       1                           //delay_nus的参数为1 约0.5us
//彩色机三轴联动X轴速度 单位为100us
#define HP6578_XM_HOLD_TIME             1
#define HP6578_YM_HOLD_TIME             3
#define HP6578_ZM_HOLD_TIME             6

//XY轴同时移动时参数 单位为100us
#define HP6578_XM_XY_HOLD_TIME          2                          
#define HP6578_YM_XY_HOLD_TIME          4 
//6578 清洗墨盒 X轴的位子
#define HP6578_XM_RINSE_INK_POSITION    1000
//6578 清洗墨盒 Y轴的位子
#define HP6578_YM_RINSE_INK_POSITION    0
//6578 清洗墨盒需要喷墨的次数
#define HP6578_RINSE_INK_JET            2000

//宏定义方向标识
#define FLAG_HIGH 					    1
#define FLAG_LOW  					    0


//函数声明
//extern void HP6578_ControlPowerOutput(void);
//extern void HP6578_PrintData(uint8_t*dat);
//extern void HP6578_PrintTestMoveDataToBuf(uint8_t*buf);
//extern void HP6578_PrintOneLine(uint8_t* buf);
extern uint32_t HP6578_MatchTheSizeOfPicture(uint16_t ThePictureOfX_px,uint16_t ThePictureOfY_px);
extern void HP6578_ModifCenter(uint16_t x,uint16_t y);
//extern uint16_t HP6578_TakeOutXCenter(void);
//extern uint16_t HP6578_TakeOutYCenter(void);
extern void HP6578_PrintTestDriver(void);
extern void HP6578_PrintDriver(uint16_t ThePictureOfX_px,uint16_t ThePictureOfY_px);
extern void HP6578_MachineBurnIn(void);
extern void HP6578_DEFINE_Method_n(uint32_t Pparameter);

#endif
